let sqlite = {
	//创建数据库或者有该数据库就打开
	connectSqlite: function() {
		//创建数据库或者打开
		//这plus.sqlite只在手机上运行
		return new Promise((resolve, reject) => {
			console.log('打开数据库')
			plus.sqlite.openDatabase({
				name: 'reartrate', //数据库名称
				path: '_doc/reartrate.db', //数据库地址，uniapp推荐以下划线为开头
				success(e) {
					resolve(e) //成功回调
				},
				fail(e) {
					reject(e) //失败回调
				},
			})
		})
	},
	// ---------------------------------------------------创建表----------------------------------------------------------------

	//在该数据库里创建表格， 这一步也必须要！
	//下面注释里说的都是说sql:'create table if not exists  realTtime   判断数据库是否存在 realTtime 这个表，如果存在什么都不做
	//如果不存在则创建
	//创建三个字段  id 主键自增
	//			  create_time 保存时间，自动填充当前时间
	//            heartRate   心率，类型为整形 不能为空

	dLocationCreate: function() {
		return new Promise((resolve, reject) => {
			//创建表格在executeSql方法里写
			plus.sqlite.executeSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: 'CREATE TABLE if not exists realTtime (id INTEGER PRIMARY KEY AUTOINCREMENT,create_time TIMESTAMP NOT NULL DEFAULT (datetime(\'now\', \'localtime\')),heartRate INTEGER NOT NULL);',
				success(e) {
					resolve(e)
				},
				fail(e) {
					reject(e)
				},
			})

			plus.sqlite.executeSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: 'CREATE TABLE if not exists bluetooth (id INTEGER PRIMARY KEY AUTOINCREMENT,address TEXT NOT NULL,name TEXT);',
				success(e) {
					resolve(e)
				},
				fail(e) {
					reject(e)
				},
			})

		})
	},


	//保存数据
	addRowData: function(value) {
		return new Promise((resolve, reject) => {
			//创建表格在executeSql方法里写
			plus.sqlite.executeSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: 'INSERT INTO realTtime (heartRate) VALUES (' + value + ');',
				success(e) {
					resolve(e)
				},
				fail(e) {
					reject(e)
				},
			})
		})
	},


	addRowBluetooth: function(address, name) {
		return new Promise((resolve, reject) => {
			//创建表格在executeSql方法里写
			plus.sqlite.executeSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: 'INSERT INTO bluetooth (address,name) VALUES ("' + address + '","' +
					name + '");',
				success(e) {
					resolve(e)
				},
				fail(e) {
					reject(e)
				},
			})
		})
	},

	selectBluetooth: function() {
		return new Promise((resolve, reject) => {
			// selectSql 用户执行查询方法
			let sql = "select * from bluetooth;"
			plus.sqlite.selectSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: sql,
				success(e) {
					resolve(e)
				},
				fail(e) {

					reject(e)
				},

			})
		})
	},


	updateBluDate: function(address, name) {
		return new Promise((resolve, reject) => {
			// selectSql 用户执行查询方法
			let sql = "update bluetooth set name = name where address= address;"
			plus.sqlite.selectSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: sql,
				success(e) {
					resolve(e)
				},
				fail(e) {

					reject(e)
				},

			})
		})
	},

	selectBlu: function(address) {

		return new Promise((resolve, reject) => {
			// selectSql 用户执行查询方法
			let sql = "select * from  bluetooth where address= address;"
			plus.sqlite.selectSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: sql,
				success(e) {
					resolve(e)
				},
				fail(e) {

					reject(e)
				},

			})
		})

	},
	selectDate: function(date) {
		//date 查询某一天的历史数据 ，构造sql
		let start_time = date + ' 00:00:00'
		let end_time = date + ' 23:59:59'
		let sql = 'SELECT create_time,heartRate FROM realTtime where  create_time Between \'' + start_time +
			'\' AND \'' + end_time + '\' Limit 500;'

		return new Promise((resolve, reject) => {
			// selectSql 用户执行查询方法
			plus.sqlite.selectSql({
				name: 'reartrate', // 数据库的名称
				//表格创建或者打开，后面为表格结构
				sql: sql,
				success(e) {
					resolve(e)
				},
				fail(e) {

					reject(e)
				},

			})
		})
	},


	// ---------------------------------------------------关闭数据库----------------------------------------------------------  
	closeSQL: function(name) {
		return new Promise((resolve, reject) => {
			plus.sqlite.closeDatabase({
				name: 'reartrate',
				success(e) {
					resolve(e)
				},
				fail(e) {
					reject(e)
				},
			})
		})
	},

	// ---------------------------------------------------监听数据库是否开启--------------------------------------------------- 
	//监听数据库是否开启
	isOpen: function(name, path) {
		var ss = name || 'reartrate'
		var qq = path || '_doc/reartrate.db'
		//数据库打开了就返回true,否则返回false
		var open = plus.sqlite.isOpenDatabase({
			name: ss,
			path: qq,
		})
		return open
	},
	// ---------------------------------------------------封装一个方法去连接数据库,并且创建表-------------------------------------------------------
	//连接数据库
	openSqlite: function() {
		let isopen = this.isOpen() // 判断数据库是否打开 ，True 为开启，flase为关闭
		if (!isopen) {
			let this_ = this
			this.connectSqlite().then(function() {
				console.log('数据库连接成功')
				//连接成功后创建表
				this_.dLocationCreate().then(function() {
					console.log('创建表成功')
				})

			}, function() {
				uni.showToast({
					title: '本地数据库连接失败',
					//将值设置为 success 或者直接不用写icon这个参数
					icon: 'success',
					//显示持续时间为 2秒
					duration: 2000
				})
			})
		}
	}

}

//把这些方法导出去
export default sqlite
